﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UFIDA.U9.Base.FlexField.ValueSet;
using UFIDA.U9.MRP.Enums;
using UFIDA.U9.SM.Ship;
using UFIDA.U9C.Cust.ZL.PlugBE.Tool;
using UFSoft.UBF.Business;
using UFSoft.UBF.Eventing;

namespace UFIDA.U9C.Cust.ZL.PlugBE
{
    /// <summary>
    /// 生产订单备料表 真兰    
    /// </summary>
    class MOPackListZLExtend : IEventSubscriber
    {
        public void Notify(params object[] args)
        {
            if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent))
                return;
            BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey;
            if (key == null)
                return;
            UFIDA.U9.MO.MO.MOPickList entity = key.GetEntity() as UFIDA.U9.MO.MO.MOPickList;
            if (entity == null)
                return;
            try
            {
                //需求说明
                // 生产订单备料表上要开发一个插件，代码写死：
                //组织编码00101、00102、00103、00701、00702、00901、00902、00903、00904，这几个组织，默认“供应方式”全部为“指定组织”；
                //其中00101、00102、00103这三个组织的“供应组织”为001；
                //00701、00702这两个组织的“供应组织”为007；
                //00901、00902、00903、00904这四个组织对应的“供应组织”为009；
                if (PubWebClass.IsOpenPlug())
                {
                    string orgcode = UFSoft.UBF.Util.Context.PlatformContext.Current.OrgCode;
                    bool isUPsupOrg = false;//是否更改供应组织和供应方式
                    string supOrg = orgcode;
                    if (orgcode == "00101" || orgcode == "00102" || orgcode == "00103")
                    {
                        isUPsupOrg = true;
                        supOrg = "001";
                    }
                    else if (orgcode == "00701" || orgcode == "00702")
                    {
                        isUPsupOrg = true;
                        supOrg = "007";
                    }
                    else if (orgcode == "00901" || orgcode == "00902" || orgcode == "00903" || orgcode == "00904")
                    {
                        isUPsupOrg = true;
                        supOrg = "009";
                    }
                    if (isUPsupOrg)
                    {
                        entity.SupplyOrg = UFIDA.U9.Base.Organization.Organization.FindByCode(supOrg);
                        entity.SupplyStyle = U9.CBO.MFG.Enums.SupplyStyleEnum.OuterOrg;
                    }

                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

        }
    }
}
